The present invention relates to file access, and more particularly, this invention relates to concurrent file protocol and object protocol access in cloud storage systems and networks.
A large amount of data currently exists on servers that are accessed by a variety of clients over networks via Network-Attached Storage (NAS) protocols, such as Network File System (NFS) and Server Message Block (SMB).
It is becoming increasingly common to access data via object interfaces, such as the OpenStack Object Store project, also referred to as OpenStack Swift. Data access to object stores is typically web-based, such as via mobile devices or web browsers. Object-based clients expect the data in a certain file system layout.
In some environments, it may be necessary for the same data to be accessed via both object-based and NAS-based protocols. However, NAS-based protocols and object-based access protocols may contradict in a variety of ways.
For example, objects in an object store are immutable, such that only the whole object can be updated, and parts of an object cannot be updated. Additionally, objects cannot be directly accessed, but need to be downloaded from the object store by a client, and then can be updated by uploading a new version of the object to the object store. In contrast, files accessed via NAS protocols may be directly accessed by clients via an export or share. Moreover, files accessed via NAS protocols can be partially modified (i.e., modifications to byte ranges within files).